package com.onegene.pdf.component.factory;

import com.onegene.pdf.util.Precondition;
import lombok.Data;

import java.io.File;

/**
 * @author: laoliangliang
 * @description:
 * @create: 2020/7/7 14:32
 **/
@Data
public class ReportBuilderContext {
    /**
     * 报告类型 0-易感  1-用药 2-简化版
     */
    private Integer type = 0;

    /**
     * 替换logo图片地址
     */
    private String logoImageUrl;

    /**
     * 三方印章图片地址
     */
    private String stamperUrl;

    /**
     * 输出地址
     */
    private String outPath;
    private String prefixPath;

    /**
     * 代理调用时分部分输出，一般不需要用到
     */
    private Integer part = 0;

    /**
     * 字体类型
     */
    protected String fontType;

    /**
     * 字体路径
     */
    protected String fontPath;
    /**
     * 默认有缓存，适用易感
     */
    private Boolean cache = true;

    /**
     * 版本
     * type为0时：1-默认原版 2-简化版（去掉头尾）
     * type为1时：1-成人用药 2-儿童用药
     * type为2时：1-中简化版（普通项没有健康建议 劣势项目显示模块1,2；正常项目不显示两模块）
     *            2-大简化版（详细版 所有项目只显示模块1）
     *            3-小简化版（仅有首页的简化版）
     *            4-大简化版劣势详细版（劣势项目显示模块2）
     * type为3时：1-常壹宁 2-易长安 3-胃癌 4-优壹宁
     */
    private Integer version = 1;

    /**
     * 是否显示完整组件（目前就针对简化版）
     */
    private Boolean all = false;

    public ReportBuilderContext() {
    }

    public ReportBuilderContext(Integer type) {
        this.type = type;
    }

    public String getOutPath() {
        Precondition.checkNotNull(outPath, "输出目录不能为空");
        return outPath;
    }

    public void setFontPath(String fontPath) {
        this.fontPath = fontPath;
        File file = new File(fontPath);
        if (!file.exists()) {
            file.mkdirs();
        }
    }

    /**
     * 目前就易感全量报告有缓存临时文件
     */
    public Boolean getCache() {
        return type == 0;
    }
}
